// package关键字：声明当前类所在的包，用于组织和管理代码
// com.itheima.abstract1：包名，与父类A在同一个包中
package com.itheima.abstract1;

// 注释：解释了继承抽象类的重要规则
// 一个类继承抽象类，必须重写完继承的全部抽象方法，否则这个类也必须定义成抽象类

// public：访问修饰符，表示这个类可以被其他任何类访问
// class：关键字，用于定义一个类
// B：类名，采用驼峰命名法，首字母大写
// extends：关键字，表示继承关系
// A：父类名，这是一个抽象类
// 这个类继承了抽象类A，因此必须实现A中所有的抽象方法
public class B extends A{
    // @Override：注解（特殊标记），用于告诉编译器这是一个重写父类的方法
    // 使用这个注解可以帮助编译器检查是否真的重写了父类方法，如果写错方法名或参数会报错
    @Override
    
    // public：访问修饰符，与父类保持一致
    // void：返回值类型，与父类保持一致
    // show()：方法名，与父类中的抽象方法名完全相同
    // 这是对抽象类A中抽象方法show()的具体实现
    public void show() {
        // System.out.println()：Java的输出语句
        // "B类重写show方法"：要打印的字符串内容
        // 这是show方法的具体实现，输出一条信息
        System.out.println("B类重写show方法");
    } // show方法结束标记
} // B类结束标记
